/*
 * SystemOutput.h
 *
 *  Created on: 10 Jun 2011
 *      Author: al2010
 */

#ifndef SYSTEMOUTPUT_H_
#define SYSTEMOUTPUT_H_

// C++ includes
#include <string>
#include <vector>
using namespace std;

// GeoReact includes
#include "System.h"

class SystemOutput
{
public:
	SystemOutput();
	
	SystemOutput(const PhaseSystem* system, string timeUnit = "s");
		
	virtual ~SystemOutput();
	
	void Set(const PhaseSystem* system, string timeUnit = "s");
	
	void Register(double time, const PhaseSystem* system);
	
	void Print() const;
	
	void Print(string filename) const;
	
private:
	const PhaseSystem* system;
	
	string timeUnit;
	
	vector<double> dataTime;
	
	vector<vector<double>> dataMoles;
};

#endif /* SYSTEMOUTPUT_H_ */
